import { reqGoodsInfo } from '../../../api/goods'
import { userBehavior } from '../../../behaviors/userBehavior'
import { reqAddCart, reqCartList } from '@/api/cart'
Page({
  behaviors: [userBehavior],
  // 页面的初始数据
  data: {
    goodsInfo: {}, // 商品详情
    show: false, // 控制加入购物车和立即购买弹框的显示
    count: 1, // 商品购买数量，默认是 1
    blessing: '', // 祝福语
    buyNow: 0, // 立即购买是否（0加入购物车 1立即购买）
    allCount: ''
  },
  // 获取购物车数量
  async getCartCount() {
    if (!this.data.token) return
    const res = await reqCartList()
    if (res.data.length !== 0) {
      // 使用 reduce 方法计算 'count' 属性的累加和
      const totalSum = res.data.reduce((sum, obj) => {
        return sum + obj.count
      }, 0)
      this.setData({
        allCount: (totalSum > 99 ? '99+' : totalSum) + ''
      })
    }
  },
  previewImg() {
    wx.previewImage({
      urls: this.data.goodsInfo.detailList
    })
  },
  onLoad(options) {
    // 将商品 id 挂载到页面实例上
    this.goodsId = options.goodsId ? options.goodsId : ''
    // 获取商品详情的数据
    this.getGoodsInfo()
    this.getCartCount()
  },
  getGoodsInfo() {
    reqGoodsInfo(this.goodsId).then((res) => {
      const { data: goodsInfo } = res
      this.setData({
        goodsInfo
      })
    })
  },
  // 加入购物车
  handleAddcart() {
    this.setData({
      show: true,
      buyNow: 0
    })
  },

  // 立即购买
  handeGotoBuy() {
    this.setData({
      show: true,
      buyNow: 1
    })
  },

  // 点击关闭弹框时触发的回调
  onClose() {
    this.setData({ show: false })
  },

  // 监听是否更改了购买数量
  onChangeGoodsCount(event) {
    this.setData({
      count: Number(event.detail)
    })
  },
  handleSubmit() {
    const { token, count, blessing, buyNow } = this.data
    const goodsId = this.goodsId
    // 没有token跳转到登录界面
    if (!token) {
      wx.navigateTo({
        url: '/pages/login/login',
        success: () => {
          wx.toast({
            title: '请先登录，再执行此操作',
            duration: 1000
          })
        }
      })
      return
    }
    // 加入购物车
    if (buyNow === 0) {
      reqAddCart({ goodsId, count, blessing }).then(() => {
        wx.showToast({
          title: '加入购物车成功'
        })
        this.getCartCount()
        this.setData({
          show: false,
          count: 1,
          blessing: ''
        })
      })
    } else {
      wx.navigateTo({
        url: `/modules/orderPayModule/pages/order/detail/detail?goodsId=${goodsId}&blessing=${blessing}`
      })
    }
  },
  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {
    return {
      title: '所有的怦然心动，都是你',
      path: '/pages/index/index',
      imageUrl: '../../../../../assets/images/love.jpg'
    }
  },
  // 分享到朋友圈
  onShareTimeline() {}
})
